package com.ym.medical.enums;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ym.common.constant.BeanCovert;
import com.ym.medical.domain.entity.SysDoctorBillEntity;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

/**
 * ComputerName:LAPTOP-9FVRPDCS
 * Author:lenovo
 * Date: 2019-12-26
 * Time: 11:27:54
 * Comment:查询扩展工具类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class SysDoctorBillParam extends BeanCovert<SysDoctorBillEntity> {

    private Long id;

    /**
     * 对账月份
     */
    @ApiModelProperty("对账月份")
    private String statsMonth;

    /**
     * 医生用户ID
     */
    @ApiModelProperty("医生用户ID")
    private Long userId;

    /**
     * 医生姓名
     */
    @ApiModelProperty("医生姓名")
    private String doctorName;

    /**
     * 提现银行卡号
     */
    @ApiModelProperty("提现银行卡号")
    private String cardNo;

    /**
     * 订单编号
     */
    @ApiModelProperty("订单编号")
    private String tdNo;

    /**
     * 提现金额
     */
    @ApiModelProperty("提现金额")
    private Double incomeAmt;

    /**
     * 渠道方手续费
     */
    @ApiModelProperty("渠道方手续费")
    private Double otherAmt;

    /**
     * 平台实际入账金额
     */
    @ApiModelProperty("平台实际入账金额")
    private Double actualIncomeAmt;

    /**
     * 平台垫付资金
     */
    @ApiModelProperty("平台垫付资金")
    private Double advanceAmt;

    /**
     * 平台抽成金额
     */
    @ApiModelProperty("平台抽成金额")
    private Double drawAmt;

    /**
     * 平台提现手续费
     */
    @ApiModelProperty("平台提现手续费")
    private Double serviceAmt;

    /**
     * 个人所得税
     */
    @ApiModelProperty("个人所得税")
    private Double statsTaxAmt;

    /**
     * 医生工资支出金额
     */
    @ApiModelProperty("医生工资支出金额")
    private Double doctorAmt;

    /**
     * 额外支出费用
     */
    @ApiModelProperty("额外支出费用")
    private Double otherPayAmt;

    /**
     * 净收入
     */
    @ApiModelProperty("净收入")
    private Double netIncomeAmt;

    /**
     * 出纳金额
     */
    @ApiModelProperty("出纳金额")
    private Double cashAmt;

    /**
     * 结算状态(01：已出账、:02：已结算:03：已作废)
     */
    @ApiModelProperty("结算状态(01：已出账、:02：已结算:03：已作废)")
    private String settlementStatus;

    /**
     * 出账时间
     */
    @ApiModelProperty("出账时间")
    private Date billingTime;

    /**
     * 结算人(系统生成/人工创建)
     */
    @ApiModelProperty("结算人(系统生成/人工创建)")
    private Long settlementPerson;

    /**
     * 修改时间(结算/作废时间)
     */
    @ApiModelProperty("修改时间(结算/作废时间)")
    private Date modifyTime;

    /**
     * 修改人(结算/作废人)
     */
    @ApiModelProperty("修改人(结算/作废人)")
    private Long modifierId;

    @ApiModelProperty(value = "医院名称")
    private String hosName;

    @ApiModelProperty(value = "科室名称")
    private String deptName;

    @ApiParam(hidden = true)
    @ApiModelProperty(value = "银行转账手续费")
    @JsonIgnore
    private BigDecimal transferServiceAmt = new BigDecimal(0);

    @ApiModelProperty(value = "修改人姓名")
    private String modifierName;

    @ApiModelProperty(value = "结算人姓名")
    private String settlementPersonName;
}
